// 引入os模块（获取系统硬件/操作系统信息）
const os = require('os');
// 引入process模块（获取进程信息，全局可用，也可显式引入）
const process = require('process');

console.log('=== 系统与进程信息查询 ===');

// 1. CPU架构信息
console.log('1. CPU架构信息');
console.log('CPU架构:', os.arch()); // 如 x64、arm
console.log('CPU核心数:', os.cpus().length); // 逻辑核心数
console.log('CPU型号:', os.cpus()[0].model); // 第一个CPU核心的型号

// 2. 操作系统信息
console.log('\n2. 操作系统信息');
console.log('操作系统名称:', os.type()); // 如 Windows_NT、Linux、Darwin（macOS）
console.log('操作系统版本:', os.release()); // 如 10.0.19045（Windows）、5.15.0（Linux）
console.log('系统启动时间:', new Date(os.uptime() * 1000).toLocaleString()); // 转换为本地时间

// 3. 进程信息
console.log('\n3. 进程信息');
console.log('当前进程ID（PID）:', process.pid); // 进程唯一标识
console.log('父进程ID（PPID）:', process.ppid); // 父进程标识
console.log('Node.js可执行文件路径:', process.execPath); // 如 C:\Program Files\nodejs\node.exe

// 4. 内存使用情况
console.log('\n4. 内存使用情况（单位：MB）');
// 系统总内存
const totalMem = (os.totalmem() / 1024 / 1024).toFixed(2);
// 系统空闲内存
const freeMem = (os.freemem() / 1024 / 1024).toFixed(2);
// 进程内存使用（RSS：常驻内存大小）
const processMem = (process.memoryUsage().rss / 1024 / 1024).toFixed(2);

console.log('系统总内存:', totalMem, 'MB');
console.log('系统空闲内存:', freeMem, 'MB');
console.log('当前进程内存使用:', processMem, 'MB');
console.log('\n结论：通过os和process模块，可以方便地获取系统和进程的关键信息，便于监控和调试。');